package com.example.pearl.common.tree;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class TreeUtils {
    public static List<TreeNode> buildTree(List<TreeNode> nodeList) {
        Map<Integer, TreeNode> nodeMap = new HashMap<>();
        nodeList.forEach(node -> nodeMap.put(node.getId(), node));

        List<TreeNode> rootNodes = new ArrayList<>();

        nodeList.forEach(node -> {
            TreeNode parent = nodeMap.get(node.getParentId());
            if (parent != null) {
                parent.getChildren().add(node);
            } else {
                rootNodes.add(node);
            }
        });

        return rootNodes;
    }
}
